import axios from "@/api/index.ts";

// 定义响应的数据结构
interface LoginResponse {
  code: number;
  message: string;
  data: string; // token
}
// interface UserInfoResponse {
//   code: number;
//   message: string;
//   data: any; // 用户信息
// }

// 定义注册响应的数据结构
interface RegisterResponse {
  code: number;
  message: string;
  data: string; // 例如返回的注册成功信息
}

// 定义获取验证码的接口参数类型
interface CaptchaParams {
  number: string; // 假设 number 是一个字符串
  email: string; // 假设 email 也是一个字符串
}

export const getCaptchaAPI = async ({ number, email }: CaptchaParams) => {
  try {
    const response = await axios.get("http://localhost:1314/register/captcha", {
      params: { number, email }
    });
    return response.data; // 假设后端返回的 JSON 格式包含 success 和 message 字段
  } catch (error) {
    console.error("获取验证码失败", error);
    return { success: false, message: "获取验证码失败，请稍后再试" };
  }
};

export const registerAPI = (data: any) => {
  console.log("发送注册请求:", data); // 输出请求数据
  return axios({
    url: "http://localhost:1314/account/register", // 注册接口地址
    method: "post",
    data: data // 传递注册数据，包括 email 和其他字段
  })
    .then((response: any) => {
      console.log("响应数据:", response); // 输出响应数据
      const data = response as RegisterResponse; // 将响应数据转换为 RegisterResponse 类型
      if (data.code === 200) {
        console.log("注册成功");
        return { success: true, message: data.message || "注册成功" }; // 返回成功信息
      } else {
        return { success: false, message: data.message || "注册失败" }; // 返回失败信息
      }
    })
    .catch((error: any) => {
      console.error("Register API 错误:", error); // 错误日志
      return { success: false, message: error.response?.data?.message || "请求失败，请稍后重试" };
    });
};

// 登录
export const loginAPI = (data: any) => {
  console.log("发送登录请求:", data); // 输出请求数据，确保调用
  return axios({
    url: "http://localhost:1314/account/login", // 登录请求地址
    method: "post",
    data: data // 传递登录表单数据
  })
    .then((response: any) => {
      console.log("响应数据:", response); // 输出响应数据
      const data = response as LoginResponse; // 将response转换为LoginResponse类型
      if (data.code === 200) {
        console.log("登录成功");
        // 登录成功，保存JWT令牌到localStorage
        const token = data.data; // 获取令牌
        console.log(token);
        //const token = "Admin-Token";
        localStorage.setItem("token", token); // 将令牌存储到localStorage
        return { success: true, token: data.data }; // 返回成功和 token
      } else {
        // 登录失败，返回失败的详细信息
        return { success: false, message: data.message || "登录失败" };
      }
    })
    .catch((error: any) => {
      console.error("Login API 错误:", error); // 错误日志
      return { success: false, message: error.response?.data?.message || "请求失败，请稍后重试" };
    });
};

// 获取用户信息
export const getUserInfoAPI = () => {
  return axios({
    url: "http://localhost:1314/info/main",
    method: "get"
  });
};
